package main

import (
	"errors" //导入异常处理的包
	"fmt"
	"strconv"
)

// 接口定义
type myInterface interface {
	Work()
	Desc()
}

// 结构体定义
type person struct {
	name string
	age  int
	sex  int //0 女 1 男
}

func NoParmaMethod() {
	fmt.Println("这是一个无参无返回值的方法")
}

// 异常需要开发者自己手动处理，go语言摒弃了传统语言的try-catch
// 1、避免开不懂异常 2、开发者能更清楚的知道异常的原因

/*
	函数：独立的，不属于任何类型
	方法：方法有接收者
*/

// 函数
func method(a int, b int) (int, error) {
	if b == 0 {
		return -1, errors.New("除数不能为0")
	}
	c := a / b
	fmt.Println("Go异常机制")
	return c, nil
}

// 实现接口的方法 person实现了接口中的desc方法
func (p person) Desc() string {
	return "姓名：" + p.name + "\n性别：" + strconv.Itoa(p.sex) + "\n年龄：" + strconv.Itoa(p.age) + "\n"
}
